This invention is related in general to the field of computing systems. More particularly, the invention relates to a software architecture for message processing in a distributed architecture computing system.
Distributed computing systems require a variety of software and hardware components for performing processing, signaling, remote database query, administrative and other tasks. These components must be a capable of communicating with other components of the distributed architecture computing system across one or more interfaces.
Conventional computing systems use a variety of techniques to communicate information between the various components of the system. In client/server systems, for example, it is not uncommon to have individually dedicated server processes for communicating instructions and information back and forth from system controllers to lower level system components. These server processes typically receive messages and perform highly specialized operations based on information contained in the received messages. Consequently, multiple message processing is severely impaired in conventional distributed architecture computing systems unless the server process provides some mechanism for processing messages in parallel, i.e. more than one request active at a time.
Therefore, it is a primary object of the present invention to provide a common method and software architecture for receiving request messages, matching response messages to the corresponding request messages waiting for a response, and maintaining a list of active requests. According to an aspect of the present invention, the method for message processing is independent of the specific messages to be processed by the corresponding message server. The software architecture for message processing can be implemented, for example, in a distributed telecommunication switching system.
It is another object of the present invention to provide a software architecture for message processing in a distributed architecture computing system wherein the support for parallel message processing is common for all types of message servers.
It is yet another object of the present invention to provide a software architecture and method for message processing in a distributed architecture computing system wherein software objects, instead of functions, are used to process message data and perform requested operations. In a distributed telecommunication switching system, for example, a switch statement can be used to construct objects that process message data and execute the necessary switching operations.
It is still another object of the present invention to provide a software architecture for message processing in a distributed architecture computing system wherein specialized functionality does not appear in the server objects, but is instead distributed at lower levels of the software hierarchy.
It is still another object of the present invention to provide a software architecture for message processing in a distributed architecture computing system whereby a server object creates a factory object which defines request objects for performing operations requested in messages received by the server object.
It is still another object of the present invention to provide a software architecture for message processing in a distributed architecture computing system whereby control of message processing is returned to a server object after creation of the factory and request objects such that the server object is capable of processing subsequent messages.
Further objects, features and advantages of the invention will become apparent from the following detailed description taken in conjunction with the accompanying figures showing illustrative embodiments of the invention.
In accordance with a preferred embodiment of the present invention, a distributed architecture computing system is provided that includes one or more processors and an object-oriented control program for processing request-type and response-type messages provided by a messaging service. The request-type messages are associated with one or more newly requested operations, and the response-type messages are associated with previously requested operations. The control program for the computing system includes: a common server object for receiving and processing the request-type and response-type messages; a common factory object for receiving the request-type messages from the common server object and creating a common request object for processing each of the request-type messages, each of the request objects include process request and process response methods for performing the requested operation, maintaining state information associated with the requested operation and generating the response-type messages; a receive mailbox object associated with the common server object for accessing the request-type and response-type messages bound for the common server object; a send mailbox object associated with the common factory object for sending the response-type messages to the receive mailbox object; and a message object for buffering message data included in the request-type and response-type messages.
In accordance with another preferred embodiment of the present invention, a distributed telecommunications switching system is provided that includes one or more processors and an object-oriented control program for processing request-type and response-type messages provided by a messaging service. The request-type messages are associated with one or more newly requested operations, and the response-type messages are associated with previously requested operations. The control program for the computing system includes: a common server object for receiving and processing the request-type and response-type messages; a common factory object for receiving the request-type messages from the common server object and creating a common request object for processing each of the request-type messages, each of the request objects including process request and process response methods for performing the requested operation, maintaining state information associated with the requested operation and generating the response-type messages; a receive mailbox object associated with the common server object for accessing the request-type and response-type messages bound for the common server object; a send mailbox object associated with the common factory object for sending the response-type messages to the receive mailbox object; and a message object for buffering message data included in the request-type and response-type messages.
In accordance with another aspect of the present invention, a distributed architecture computing system is provided wherein request-type messages associated with requested operations are received by a common server object and forwarded to a factory object for processing by request objects. The system includes a method wherein the common server object provides the request-type messages to the factory object, and the factory object creates the request objects for processing the request-type messages such that one of the request objects corresponds to one of the request-type messages. For each of the request-type messages, the corresponding request object is returned by the factory object to the common server object, which then invokes a process request method associated with the returned request object. A method is also provided when the common server object receives a response-type message and is used for matching the response-type message to the corresponding request object waiting for a response. The common server object invokes the request object""s process response method which completes the processing of the response-type message.
In accordance with another aspect of the present invention, a distributed telecommunications switching system is provided wherein request-type messages associated with requested operations are received by a common server object and forwarded to a factory object for processing by request objects. The system includes a method wherein the common server object provides the request-type messages to the factory object, and the factory object creates the request objects for processing the request-type messages such that one of the request objects corresponds to one of the request-type messages. For each of the request-type messages, the corresponding request object is returned by the factory object to the common server object, which then invokes a process request method associated with the returned request object. A method is also provided when the common server object receives a response-type message and is used for matching the response-type message to the corresponding request object waiting for a response. The common server object invokes the request object""s process response method which completes the processing of the response-type message.